package com.lg.wxq.ui;

import java.util.ArrayList;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ListView;

import com.lg.wxq.adapter.HomeAdapter;
import com.lg.wxq.bean.Status;
import com.lg.wxq.bean.Task;
import com.lg.wxq.config.ActivityCode;
import com.lg.wxq.config.Strings;
import com.lg.wxq.config.TaskType;
import com.lg.wxq.manager.MainActivityManager;
import com.lg.wxq.utils.DebugUtils;

public class HomeActivity extends BaseActivity {
	private ListView listView;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.home);
		listView = (ListView) findViewById(R.id.home_lv);
		homeTimeline(1);
	}

	@Override
	public void clickButton(View v) {
		super.clickButton(v);
		switch (v.getId()) {
		case R.id.home_bt_left:
			showTab(true);
			break;
		case R.id.home_bt_newweibo:
			Intent intent=new Intent(this,NewWeiboActivity.class);
			intent.putExtra(Strings.ACTID, actID);
			startActivityForResult(intent, ActivityCode.REQUEST_CODE_HOME);
			break;
		}
	}
	
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		super.onActivityResult(requestCode, resultCode, data);
		if(requestCode==ActivityCode.REQUEST_CODE_HOME&&resultCode==ActivityCode.RESULT_CODE_HOME){
			
		}
	}
	
	private void showTab(boolean isShow) {
		MainActivityManager.getInstance().getMainActivity().itemVisiable(isShow);
	}

	@Override
	public void refresh(Task task) {
		super.refresh(task);
		switch (task.getTaskType()) {
		case TaskType.TS_STATUSES_HOME_TIMELINE:
			ArrayList<Status> statuses = (ArrayList<Status>) task.getData();
			HomeAdapter adapter = new HomeAdapter(statuses, this);
			listView.setAdapter(adapter);
			break;
		case TaskType.TS_GETIMAGE_AVATAR:
			((HomeAdapter) listView.getAdapter()).notifyDataSetChanged();
			break;
		case TaskType.TS_GETIMAGE_PICTURE:
			((HomeAdapter) listView.getAdapter()).notifyDataSetChanged();
			break;
		}
	}

	/**
	 * 获取当前登录用户及其所关注用户的最新微博
	 * 
	 * @param actID
	 *            调用Activity的id
	 * @param page
	 *            返回结果的页码。
	 */
	private void homeTimeline(int page) {
		homeTimeline(0, 0, 25, page, 0, 0, 0);
	}

	/**
	 * 获取当前登录用户及其所关注用户的最新微博
	 * 
	 * @param actID
	 *            调用Activity的id
	 * @param sinceID
	 *            若指定此参数，则返回ID比since_id大的微博（即比since_id时间晚的微博），默认为0。
	 * @param maxID
	 *            若指定此参数，则返回ID小于或等于max_id的微博，默认为0。
	 * @param count
	 *            单页返回的记录条数，默认为50。
	 * @param page
	 *            返回结果的页码，默认为1。
	 * @param baseApp
	 *            是否只获取当前应用的数据。0为否（所有数据），1为是（仅当前应用），默认为0。
	 * @param feature
	 *            过滤类型ID，0：全部、1：原创、2：图片、3：视频、4：音乐，默认为0。
	 * @param trimUser
	 *            返回值中user字段开关，0：返回完整user字段、1：user字段仅返回user_id，默认为0。
	 */
	private void homeTimeline(int sinceID, int maxID, int count, int page, int baseApp, int feature, int trimUser) {
		Task task = getTask(actID, TaskType.TS_STATUSES_HOME_TIMELINE, true);
		task.addParam(Strings.ACCESS_TOKEN, weibo.getAccessToken().getToken());
		task.addParam(Strings.SINCE_ID, sinceID);
		task.addParam(Strings.MAX_ID, maxID);
		task.addParam(Strings.COUNT, count);
		task.addParam(Strings.PAGE, page);
		task.addParam(Strings.BASE_APP, baseApp);
		task.addParam(Strings.FEATURE, feature);
		task.addParam(Strings.TRIM_USER, trimUser);
		taskManager.addTask(task);
	}

}
